]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
sessionMode: Add allowKeybindingsWhenModal property
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 17 May 2012 13:55:35 +0000 (15:55 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Tue, 22 May 2012 17:42:28 +0000 (19:42 +0200)
Add a sessionMode.allowKeybindingsWhenModal property, which determines
whether keybindings should still be handled while a modal dialog is
up or not.

https://bugzilla.gnome.org/show_bug.cgi?id=676156

js/ui/main.js
js/ui/sessionMode.js

index 1e2a89d0169c41a15649eb4b8b4f8d939d688d6b..66340255f6e903bc251ee93c3753df287f615862 100644 (file)
@@ -563,6 +563,11 @@ function _globalKeyPressHandler(actor, event) {
     if (event.type() != Clutter.EventType.KEY_PRESS)
         return false;
 
+    if (!sessionMode.allowKeybindingsWhenModal) {
+        if (modalCount > (overview.visible ? 1 : 0))
+            return false;
+    }
+
     let symbol = event.get_key_symbol();
     let keyCode = event.get_key_code();
     let ignoredModifiers = global.display.get_ignored_modifier_mask();
@@ -571,11 +576,6 @@ function _globalKeyPressHandler(actor, event) {
     // This relies on the fact that Clutter.ModifierType is the same as Gdk.ModifierType
     let action = global.display.get_keybinding_action(keyCode, modifierState);
 
-    // Other bindings are only available to the user session when the overview is up and
-    // no modal dialog is present.
-    if (sessionMode.sessionType == Shell.SessionType.USER && (!overview.visible || modalCount > 1))
-        return false;
-
     // This isn't a Meta.KeyBindingAction yet
     if (symbol == Clutter.Super_L || symbol == Clutter.Super_R) {
         overview.hide();
index 737b5742bf4f2d72190e696342b547e71a15f3ee..c66e92f0446ad880faedbe2b7607dd7df096c77b 100644 (file)
@@ -13,6 +13,7 @@ const _modes = {
              showCalendarEvents: false,
              allowSettings: false,
              allowExtensions: false,
+             allowKeybindingsWhenModal: true,
              sessionType: Shell.SessionType.GDM },
 
     'user': { hasOverview: true,
@@ -20,6 +21,7 @@ const _modes = {
               showCalendarEvents: true,
               allowSettings: true,
               allowExtensions: true,
+              allowKeybindingsWhenModal: false,
               sessionType: Shell.SessionType.USER }
 };